import axios from 'axios'
// import Msg from '../assets/js/msg'
// 超时时间
axios.defaults.timeout = 30000

// var loadinginstace

axios.interceptors.request.use(config => {
  // loading
  // loadinginstace = Loading.service({ fullscreen: true })
  return config
}, error => {
  // MessageBox({
  //   title: '提示',
  //   message: '加载超时',
  //   callback: action => {
  //     loadinginstace.close()
  //   }
  // })
  return Promise.reject(error)
})

axios.interceptors.response.use(response => {
  // loadinginstace.close()
  return response
}, error => {
  return Promise.resolve(error.response)
})

export default {
  /**
   * @param url      交易码
   * @param data     请求参数
   * @param isAlert  默认值false, 若想自己定义弹窗消息,可传参true
   * @returns {Promise<any>}
   */
  post: function (url, data, h) {
    return new Promise((resolve, reject) => {
      axios.post(url, data, {headers: h}).then(res => {
        let { data, status } = res
        if (status === 200) {
          resolve(data)
        } else {
          reject(data)
        }
      })
    })
  },
  get: function (url, h, data) {
    return new Promise((resolve, reject) => {
      // 添加请求拦截器
      axios.interceptors.request.use(function (config) {
        // 随便写个值 绕过if判段(底层源码加了判断会直接删除header里的值)
        if (config.method === 'get') {
          config.data = true
        }
        return config
      }, function (error) {
        // 对请求错误做些什么
        return reject(error)
      })
      axios.get(url, { params: data, headers: h }).then(res => {
        let {data, status} = res
        if (status === 200) {
          resolve(data)
        } else {
          reject(data)
        }
      })
    })
  }
}
